home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 2000 February
/
Macworld (2000-02).dmg
/
Games World
/
Top 12 Shareware
/
ExaChess_Lite 2.1
/
ExaChess Tools
/
Engines
/
ZZZZZZ ReadMe
< prev
Wrap
Text File
|
1999-11-10
|
7KB
|
218 lines
ZZZZZZ Chess 3.3
© G. Weisenekker
Mac port by Rolf Exner
Released under the Gnu license.
Introduction
ZZZZZZ is a chess program developed by G. Weisenekker and released under
the GNU licence. This version for the Mac was ported by R. Exner, and is the
third such version.
As released by G. Wiesenekker, it can be compiled for Unix, DOS, or MAC.
However it is packaged as a test program for running tests in batch mode,
and has no real user interface. Most communications is through files -
files to read the run-time arguments, files to read the starting position,
files to write test results to.
I have added a simple text-based user interface to permit more normal
operation as a chess program. I have also added support for the 'CHES'
Apple Event suite to allow programs like ExaChess to use ZZZZZZ as a
chess engine. Used in this manner, the chess board is controlled by
ExaChess and the simple text-based interface of ZZZZZZ is adequate.
Changes in release 3.3
ZZZZZZ can now parse ++ for checkmate, 0-0+ etc.
Changes in release 3.2
Added support for ExaChess chess engine interface version 2.0 (includes
setting time controls, analysis, game termination)
Searching can now be terminated by Cmd-period (rather than Option);
Cmd-period no longer quits ZZZZZZ.
ZZZZZZ Commands
If you launch ZZZZZZ by double clicking it, you get a console window into
which you can type commands. ZZZZZZ will not automatically play a game.
You need to tell it to 'go' to have it search for a move and play it.
The following commands are available:
<return> (or 'board')
Display the current board. The board is displayed as follows:
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P P P P P P P P
R N B Q K B N R W
Lower case letters denote Black pieces, upper case letters White pieces.
The side to move is shown after the last square.
<moves>
Entering one or more moves, with or without move numbers, will result
in those moves being applied to ZZZZZZ's board. Moves should be in
English algebraic notation with correct capitalization (e.g. Nf3 not
nf3). If move numbers are given ZZZZZZ will take back moves as necessary
to reset its move counter to the move number entered.
e.g.
1 e4 e5 2 Nf3
2... Nc6
- (or 'back')
Take back the last move
game
List the moves made since the game started.
go
Search for the best move and make it. You can force the immediate end to a
long search by typing Command-period.
help
Display a summary of available commands
newgame
Reset the board to the standard starting position
setboard <position>
Set the board to a custom startup position. <position> is given in Forsyth notation,
which is a one-line representation of the board, scanned by row starting with a8-h8,
followed by a7-h7, etc. to a1-h1. For each row, denote Black pieces by prnbqk, White
pieces by PRNBQK, and empty squares by an integer 1 to 8 (being the number of
consecutive empty squares). Use a comma or slash to separate rows, and enclose
the whole string in slashes.
For example, the standard starting position itself is
rnbqkbnr,pppppppp,8,8,8,8,PPPPPPPP,RNBQKBNR
A position entered in this way is assumed to have White-to-move, both sides with
maximum possible castling rights, and no en passant square. To override these
defaults, append up to three terms to the above string, separated with commas:
‘white’ or ‘black’, the castling rights as a 4-character string ‘KQkq’ (White
kingside, queenside, Black kingside, queenside respectively) with forfeited rights
replaced by a ‘-’, and the en passant square. For example, after the initial moves
1 e4 d5 2 Ke2 de 3 d4, White has lost the right to castle Kingside and Queenside
and d3 is the en passant square, and so the position is
rnbqkbnr,ppp1pppp,8,8,3Pp3,8,PPP1KPPP,RNBQ1BNR,black,--kq,d3
set <param> <value>
Set the named parameter to the value given. ZZZZZZ supports the following
parameters:
echo
- if 1, echo a copy of all screen output to the file zzlog
maxdepth
- maximum search depth, in ply
resign
- if 1, allow ZZZZZZ to resign when in a bad position
timelimit
- the time limit in seconds for a search
usebook
- if 1, use the opening book; if 0, don’t use the opening book
verbose
- if 1, display search progress and stats when searching
e.g. to set the timelimit to 15 seconds response time per move:
set timelimit 15
show [<param>]
Show the value of the named parameter, or if no parameter is given, the
value of all parameters.
quit (or 'q')
Exit the program
Startup file
If there is a file called zzstartup in the same directory as ZZZZZZ, it will
read this file and process commands in it before fetching commands from
the console. Use this file to set options such as the default timelimit, or
a special startup position or partial game.
You can also place a complete test script into this file to have ZZZZZZ
run the test script with a minimum of user interaction. (You can also
to this via the Apple Event interface). If the last command in the file
is quit, then ZZZZZZ will quit without ever requesting input from the
console.
Opening book
The opening book with which ZZZZZZ plays is found in encoded form in the
resources BOOK 0 (White) and BOOK 1 (Black) in its resource fork.
To create a new book, place the file zzbook.txt in the same directory as
ZZZZZZ and start ZZZZZZ. When it starts up, it looks for this file, and if
found, processes it to create a file zzbook into which it puts the BOOK 0 and
BOOK1 resources. You need to manually paste these resources into ZZZZZZ to
have it use the newly generated book.
The zzbook.txt file uses the same format as GNUChess, and the supplied file
is the same as the Nunn book provided with GNUChess3. It is not included in
this distribution. The format of this book is as follows:
g1f3 b7b5 g2g3 e7e6 a2a4 b5b4 b2b3 c8b7 f1g2 f7f5 c1b2 g8f6 d2d3 b8a6 f3h4
!
g1f3 g7g6 g2g3 f8g7 f1g2 e7e5 e2e4 b8c6 d2d3 d7d6 o-o g8e7 b1d2 o-o c2c3 h7h6
!
g1f3 f7f5 g2g3 g8f6 f1g2 e7e6 d2d3 f8e7 o-o o-o b1d2 d7d6 e2e4 f5e4
!
When building the book ZZZZZZ will check whether the entered line results in a
material loss which is not immediately returned (i.e. a probable gambit). Any such lines
are rejected.
Stats
time=time_used
stats=ngens, ndos, nevals, nhits, nextends
ngens = number of times the set of moves is generated
ndos = number of times domove is called on a legal move
nevals = number of times evaluation routines are called
nhits = number of times transposition cache holds evaluation instead
nextends = ??
Scripting
ZZZZZZ is scriptable using Apple’s scripting system. Here is a small
script to demonstrate ZZZZZZ’s scripting capabilities:
tell application "ZZZZZZ"
new game
move "1 e4 e5 2 Nf3 Nc6 3 Bb5 a6"
move "2… Nf6"
search ""
end tell
Porting Notes
To build the Mac release, you need the following files from the zzzzzz
distribution:
zzzzzz.c
zzzzzz.h
plus the following files for the Mac port:
ChessEvents.c
main.c
zzglue.c
Contact R. Exner (r.exner@exachess.com) for a copy of these files.